﻿DROP TRIGGER termin_cis_orientacni_tri ON termin;
CREATE OR REPLACE FUNCTION termin_cis_orientacni_tri()
  RETURNS trigger AS
$BODY$
DECLARE
  cis_orientacni integer[];

BEGIN
    SELECT termin.cis_orientacni
    INTO cis_orientacni
    FROM termin
    WHERE NEW.naz_ulice = termin.naz_ulice
    AND date_trunc('day',NEW.termin_cisteni::Timestamp) = date_trunc('day',termin.termin_cisteni::Timestamp)
    AND NEW.naz_akce = termin.naz_akce;
--todo termin musi byt jen datum time stampy nestaci
    IF cis_orientacni && NEW.cis_orientacni THEN
      raise exception 'Pro stejnou akci, ve stejný den, ve stejné ulici nemůže být ani jedno číslo orientační stejné. Jedná se o duplikaci. '
	using hint = 'Použij jiný název akce';
    END IF;
    
RETURN NEW;
END;
$BODY$
  LANGUAGE plpgsql;
ALTER FUNCTION termin_cis_orientacni_tri() OWNER TO postgres;


CREATE TRIGGER termin_cis_orientacni_tri
  BEFORE INSERT OR UPDATE
  ON termin
  FOR EACH ROW
  EXECUTE PROCEDURE termin_cis_orientacni_tri();

